package com.example.onlineanswer.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.onlineanswer.model.entity.Comment;
import com.example.onlineanswer.model.vo.CommentVO;

/**
 * 评论服务接口
 */
public interface CommentService extends IService<Comment> {

    /**
     * 分页查询竞赛评论列表（包含回复）
     *
     * @param page      分页参数
     * @param contestId 竞赛ID
     * @return 评论列表
     */
    IPage<CommentVO> pageCommentsByContestId(Page<CommentVO> page, Long contestId);

    /**
     * 添加评论
     *
     * @param comment 评论信息
     * @return 评论ID
     */
    Long addComment(Comment comment);

    /**
     * 添加评论回复
     *
     * @param contestId 竞赛ID
     * @param commentId 评论ID
     * @param comment   回复信息
     * @return 回复ID
     */
    Long replyComment(Long contestId, Long commentId, Comment comment);

    /**
     * 点赞评论
     *
     * @param commentId 评论ID
     * @return 是否成功
     */
    boolean likeComment(Long commentId);
} 